package com.example.base_model.ext

import android.content.Context

/**
 * @Author: jiangKunKun
 * @CreateDate: 2025/10/7
 * @Description: Context 类的扩展函数和属性，用于简化获取屏幕尺寸和单位转换等常见操作。
 * @SpittingGrooves:
 */

/**
 * 获取屏幕的宽度（单位：像素）。
 * @receiver Context
 * @return 屏幕宽度，单位为 px。
 */
val Context.screenWidth: Int
    get() = resources.displayMetrics.widthPixels

/**
 * 获取屏幕的高度（单位：像素）。
 * @receiver Context
 * @return 屏幕高度，单位为 px。
 */
val Context.screenHeight: Int
    get() = resources.displayMetrics.heightPixels

/**
 * 将 dp (密度无关像素) 值转换为像素 (px) 值。
 * @receiver Context
 * @param dp 要转换的 dp 值。
 * @return 转换后的像素值。
 */
fun Context.dpToPx(dp: Float): Int {
    return (dp * resources.displayMetrics.density).toInt()
}

/**
 * 将像素 (px) 值转换为 dp (密度无关像素) 值。
 * @receiver Context
 * @param px 要转换的像素值。
 * @return 转换后的 dp 值。
 */
fun Context.pxToDp(px: Float): Int {
    return (px / resources.displayMetrics.density).toInt()
}
